<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>HexFiend: HFLayoutRepresenter Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">HexFiend
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#properties">Properties</a> &#124;
<a href="interface_h_f_layout_representer-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">HFLayoutRepresenter Class Reference<div class="ingroups"><a class="el" href="group__view.html">View</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>An <a class="el" href="interface_h_f_representer.html" title="The principal view class of Hex Fiend&#39;s MVC architecture. ">HFRepresenter</a> responsible for arranging the views of other HFRepresenters attached to the same <a class="el" href="interface_h_f_controller.html" title="A central class that acts as the controller layer for HexFiend.framework. ">HFController</a>.  
 <a href="interface_h_f_layout_representer.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for HFLayoutRepresenter:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interface_h_f_layout_representer.png" usemap="#HFLayoutRepresenter_map" alt=""/>
  <map id="HFLayoutRepresenter_map" name="HFLayoutRepresenter_map">
<area href="interface_h_f_representer.html" title="The principal view class of Hex Fiend&#39;s MVC architecture. " alt="HFRepresenter" shape="rect" coords="73,56,209,80"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Instance Methods</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Layout</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Methods to get information about layout, and to explicitly trigger it. </p>
</div></td></tr>
<tr class="memitem:abe8b9fb073e8431e28d803ad74497253"><td class="memItemLeft" align="right" valign="top">(CGFloat)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_layout_representer.html#abe8b9fb073e8431e28d803ad74497253">minimumViewWidthForLayoutInProposedWidth:</a></td></tr>
<tr class="separator:abe8b9fb073e8431e28d803ad74497253"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a73dfcea5490b43e0939d53f283328f"><td class="memItemLeft" align="right" valign="top">(NSUInteger)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_layout_representer.html#a7a73dfcea5490b43e0939d53f283328f">maximumBytesPerLineForLayoutInProposedWidth:</a></td></tr>
<tr class="separator:a7a73dfcea5490b43e0939d53f283328f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3434437784555fdbe449665334e5f2b"><td class="memItemLeft" align="right" valign="top">(CGFloat)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_layout_representer.html#ab3434437784555fdbe449665334e5f2b">minimumViewWidthForBytesPerLine:</a></td></tr>
<tr class="separator:ab3434437784555fdbe449665334e5f2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d2e3123689bdc1f6907fa75de4e4ab3"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_layout_representer.html#a4d2e3123689bdc1f6907fa75de4e4ab3">performLayout</a></td></tr>
<tr class="separator:a4d2e3123689bdc1f6907fa75de4e4ab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_interface_h_f_representer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_interface_h_f_representer')"><img src="closed.png" alt="-"/>&#160;Instance Methods inherited from <a class="el" href="interface_h_f_representer.html">HFRepresenter</a></td></tr>
<tr class="memitem:a5393437fbe020d3079a979a7383eb67b inherit pub_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(NSUInteger)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_representer.html#a5393437fbe020d3079a979a7383eb67b">byteGranularity</a></td></tr>
<tr class="separator:a5393437fbe020d3079a979a7383eb67b inherit pub_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9738e9e916b36b17e37b178234ee79fe inherit pub_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(id)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_representer.html#a9738e9e916b36b17e37b178234ee79fe">view</a></td></tr>
<tr class="separator:a9738e9e916b36b17e37b178234ee79fe inherit pub_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04bfc131d81d7123c4fcdcc5327f94dd inherit pub_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_representer.html#a04bfc131d81d7123c4fcdcc5327f94dd">isViewLoaded</a></td></tr>
<tr class="separator:a04bfc131d81d7123c4fcdcc5327f94dd inherit pub_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39e5e22b482218a8c38c384502ee1709 inherit pub_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(NSView *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_representer.html#a39e5e22b482218a8c38c384502ee1709">NS_RETURNS_RETAINED</a></td></tr>
<tr class="separator:a39e5e22b482218a8c38c384502ee1709 inherit pub_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a786eb3e2db08cd99bd04aa737bf6073d inherit pub_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_representer.html#a786eb3e2db08cd99bd04aa737bf6073d">initializeView</a></td></tr>
<tr class="separator:a786eb3e2db08cd99bd04aa737bf6073d inherit pub_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2c63f016e14f6de4bcb9312ceca4998 inherit pub_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_h_f_controller.html">HFController</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_representer.html#ac2c63f016e14f6de4bcb9312ceca4998">controller</a></td></tr>
<tr class="separator:ac2c63f016e14f6de4bcb9312ceca4998 inherit pub_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23c079ab89921b0b54b3072a1c494107 inherit pub_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_representer.html#a23c079ab89921b0b54b3072a1c494107">controllerDidChange:</a></td></tr>
<tr class="separator:a23c079ab89921b0b54b3072a1c494107 inherit pub_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a821a42b782b48dd2dda877807f0eff54 inherit pub_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(NSUInteger)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_representer.html#a821a42b782b48dd2dda877807f0eff54">bytesPerLine</a></td></tr>
<tr class="separator:a821a42b782b48dd2dda877807f0eff54 inherit pub_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4f756afd4c3b7c44f710fa7374c582d inherit pub_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(NSUInteger)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_representer.html#ae4f756afd4c3b7c44f710fa7374c582d">bytesPerColumn</a></td></tr>
<tr class="separator:ae4f756afd4c3b7c44f710fa7374c582d inherit pub_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a009d8e81dc63b3484e502e99a5b2874a inherit pub_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_representer.html#a009d8e81dc63b3484e502e99a5b2874a">representerChangedProperties:</a></td></tr>
<tr class="separator:a009d8e81dc63b3484e502e99a5b2874a inherit pub_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b93407c240a3f821f810d1f33faf0ac inherit pub_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(NSUInteger)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_representer.html#a7b93407c240a3f821f810d1f33faf0ac">maximumBytesPerLineForViewWidth:</a></td></tr>
<tr class="separator:a7b93407c240a3f821f810d1f33faf0ac inherit pub_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b6f9c8eda1d96dcc31bb850fb9048fd inherit pub_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(double)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_representer.html#a2b6f9c8eda1d96dcc31bb850fb9048fd">maximumAvailableLinesForViewHeight:</a></td></tr>
<tr class="separator:a2b6f9c8eda1d96dcc31bb850fb9048fd inherit pub_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:a88bae352e0a85af02dfef594b2c75bb9"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_h_f_layout_representer.html#a88bae352e0a85af02dfef594b2c75bb9">maximizesBytesPerLine</a></td></tr>
<tr class="separator:a88bae352e0a85af02dfef594b2c75bb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header properties_interface_h_f_representer"><td colspan="2" onclick="javascript:toggleInherit('properties_interface_h_f_representer')"><img src="closed.png" alt="-"/>&#160;Properties inherited from <a class="el" href="interface_h_f_representer.html">HFRepresenter</a></td></tr>
<tr class="memitem:a05cf33df8751ca00d2b08ac2cbe62067 inherit properties_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">NSPoint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_h_f_representer.html#a05cf33df8751ca00d2b08ac2cbe62067">layoutPosition</a></td></tr>
<tr class="memdesc:a05cf33df8751ca00d2b08ac2cbe62067 inherit properties_interface_h_f_representer"><td class="mdescLeft">&#160;</td><td class="mdescRight">The layout position for the receiver.  <a href="interface_h_f_representer.html#a05cf33df8751ca00d2b08ac2cbe62067">More...</a><br /></td></tr>
<tr class="separator:a05cf33df8751ca00d2b08ac2cbe62067 inherit properties_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Managed representers</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp5e4b8f949f94d4d322e78937f4855ebc"></a>Managing the list of representers laid out by the receiver </p>
</td></tr>
<tr class="memitem:a6c8494accd0fd1ef12bb6bf5f24860f9"><td class="memItemLeft" align="right" valign="top">NSArray *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_h_f_layout_representer.html#a6c8494accd0fd1ef12bb6bf5f24860f9">representers</a></td></tr>
<tr class="memdesc:a6c8494accd0fd1ef12bb6bf5f24860f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the array of representers managed by the receiver. */.  <a href="#a6c8494accd0fd1ef12bb6bf5f24860f9">More...</a><br /></td></tr>
<tr class="separator:a6c8494accd0fd1ef12bb6bf5f24860f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca136d6a74a923a097b4db784e9af1d5"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_layout_representer.html#aca136d6a74a923a097b4db784e9af1d5">addRepresenter:</a></td></tr>
<tr class="separator:aca136d6a74a923a097b4db784e9af1d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af54fc4c854ced0f713066d330e962ee4"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_layout_representer.html#af54fc4c854ced0f713066d330e962ee4">removeRepresenter:</a></td></tr>
<tr class="separator:af54fc4c854ced0f713066d330e962ee4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_interface_h_f_representer"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_interface_h_f_representer')"><img src="closed.png" alt="-"/>&#160;Class Methods inherited from <a class="el" href="interface_h_f_representer.html">HFRepresenter</a></td></tr>
<tr class="memitem:a242a7e6f74430c85bcaf9b3fe01e8fbf inherit pub_static_methods_interface_h_f_representer"><td class="memItemLeft" align="right" valign="top">(NSPoint)&#160;</td><td class="memItemRight" valign="bottom">+ <a class="el" href="interface_h_f_representer.html#a242a7e6f74430c85bcaf9b3fe01e8fbf">defaultLayoutPosition</a></td></tr>
<tr class="separator:a242a7e6f74430c85bcaf9b3fe01e8fbf inherit pub_static_methods_interface_h_f_representer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="interface_h_f_layout_representer.html" title="An HFRepresenter responsible for arranging the views of other HFRepresenters attached to the same HFC...">HFLayoutRepresenter</a> is an <a class="el" href="interface_h_f_representer.html" title="The principal view class of Hex Fiend&#39;s MVC architecture. ">HFRepresenter</a> that manages the views of other HFRepresenters. It arranges their views in its own view, mediating between them to determine their position and size, as well as global properties such as bytes per line.</p>
<p><a class="el" href="interface_h_f_layout_representer.html" title="An HFRepresenter responsible for arranging the views of other HFRepresenters attached to the same HFC...">HFLayoutRepresenter</a> has an array of representers attached to it. When you add an <a class="el" href="interface_h_f_representer.html" title="The principal view class of Hex Fiend&#39;s MVC architecture. ">HFRepresenter</a> to this array, <a class="el" href="interface_h_f_layout_representer.html" title="An HFRepresenter responsible for arranging the views of other HFRepresenters attached to the same HFC...">HFLayoutRepresenter</a> will add the view of the representer as a subview of its own view.</p>
<p><b>Layout</b> </p>
<p><a class="el" href="interface_h_f_layout_representer.html" title="An HFRepresenter responsible for arranging the views of other HFRepresenters attached to the same HFC...">HFLayoutRepresenter</a> is capable of arranging the views of other HFRepresenters to fit within the bounds of its view. The layout process depends on three things:</p>
<ol type="1">
<li>The <code>frame</code> and <code>autoresizingMask</code> of the representers' views.</li>
<li>The <code>minimumViewWidthForBytesPerLine:</code> method, which determines the largest number of bytes per line that the representer can display for a given view width.</li>
<li>The representer's <code>layoutPosition</code>. This is an NSPoint, but it is not used geometrically. Instead, the relative values of the X and Y coordinates of the <code>layoutPosition</code> determine the relative positioning of the views, as described below.</li>
</ol>
<p>Thus, to have your subclass of <a class="el" href="interface_h_f_representer.html" title="The principal view class of Hex Fiend&#39;s MVC architecture. ">HFRepresenter</a> participate in the <a class="el" href="interface_h_f_layout_representer.html" title="An HFRepresenter responsible for arranging the views of other HFRepresenters attached to the same HFC...">HFLayoutRepresenter</a> system, override <code>defaultLayoutPosition:</code> to control its positioning, and possibly \c minimumViewWidthForBytesPerLine: if your representer requires a certain width to display some bytes per line. Then ensure your view has its autoresizing mask set properly, and if its frame is fixed size, ensure that its frame is correct as well.</p>
<p>The layout process, in detail, is:</p>
<ol type="1">
<li>The views are sorted vertically by the Y component of their representers' <code>layoutPosition</code> into "slices." Smaller values appear towards the bottom of the layout view. There is no space between slices.</li>
<li>Views with equal Y components are sorted horizontally by the X component of their representers' <code>layoutPosition</code>, with smaller values appearing on the left.</li>
<li>The height of each slice is determined by the tallest view within it, excluding views that have <code>NSViewHeightSizable</code> set. If there is any leftover vertical space, it is distributed equally among all slices with at least one view with <code>NSViewHeightSizable</code> set.</li>
<li>If the layout representer is not set to maximize the bytes per line (BPL), then the BPL from the <a class="el" href="interface_h_f_controller.html" title="A central class that acts as the controller layer for HexFiend.framework. ">HFController</a> is used. Otherwise:<ol type="a">
<li>Each representer is queried for its <code>minimumViewWidthForBytesPerLine:</code> </li>
<li>The largest BPL allowing each row to fit within the layout width is determined via a binary search.</li>
<li>The BPL is rounded down to a multiple of the bytes per column (if non-zero).</li>
<li>The BPL is then set on the controller.</li>
</ol>
</li>
<li>For each row, each view is assigned its minimum view width for the BPL.</li>
<li>If there is any horizontal space left over, it is divided evenly between all views in that slice that have <code>NSViewWidthSizable</code> set in their autoresizing mask. </li>
</ol>
</div><h2 class="groupheader">Method Documentation</h2>
<a id="aca136d6a74a923a097b4db784e9af1d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca136d6a74a923a097b4db784e9af1d5">&sect;&nbsp;</a></span>addRepresenter:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) addRepresenter: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_h_f_representer.html">HFRepresenter</a> *)&#160;</td>
          <td class="paramname"><em>representer</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Adds a new representer to the receiver, triggering relayout. </p>

</div>
</div>
<a id="af54fc4c854ced0f713066d330e962ee4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af54fc4c854ced0f713066d330e962ee4">&sect;&nbsp;</a></span>removeRepresenter:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) removeRepresenter: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_h_f_representer.html">HFRepresenter</a> *)&#160;</td>
          <td class="paramname"><em>representer</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Removes a representer to the receiver (which must be present in the receiver's array of representers), triggering relayout. </p>

</div>
</div>
<a id="abe8b9fb073e8431e28d803ad74497253"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe8b9fb073e8431e28d803ad74497253">&sect;&nbsp;</a></span>minimumViewWidthForLayoutInProposedWidth:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (CGFloat) minimumViewWidthForLayoutInProposedWidth: </td>
          <td></td>
          <td class="paramtype">(CGFloat)&#160;</td>
          <td class="paramname"><em>proposedWidth</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the smallest width that produces the same layout (and, if maximizes bytesPerLine, the same bytes per line) as the proposed width. </p>

</div>
</div>
<a id="a7a73dfcea5490b43e0939d53f283328f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a73dfcea5490b43e0939d53f283328f">&sect;&nbsp;</a></span>maximumBytesPerLineForLayoutInProposedWidth:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (NSUInteger) maximumBytesPerLineForLayoutInProposedWidth: </td>
          <td></td>
          <td class="paramtype">(CGFloat)&#160;</td>
          <td class="paramname"><em>proposedWidth</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the maximum bytes per line that can fit in the proposed width (ignoring maximizesBytesPerLine). This is always a multiple of the bytesPerColumn, and always at least bytesPerColumn. </p>

</div>
</div>
<a id="ab3434437784555fdbe449665334e5f2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3434437784555fdbe449665334e5f2b">&sect;&nbsp;</a></span>minimumViewWidthForBytesPerLine:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (CGFloat) minimumViewWidthForBytesPerLine: </td>
          <td></td>
          <td class="paramtype">(NSUInteger)&#160;</td>
          <td class="paramname"><em>bytesPerLine</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the smallest width that can support the given bytes per line. </p>

<p>Reimplemented from <a class="el" href="interface_h_f_representer.html#acf56b3dfdb9c607c6871d2ef9abe5a91">HFRepresenter</a>.</p>

</div>
</div>
<a id="a4d2e3123689bdc1f6907fa75de4e4ab3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d2e3123689bdc1f6907fa75de4e4ab3">&sect;&nbsp;</a></span>performLayout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) performLayout </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Relayouts are triggered when representers are added and removed, or when the view is resized. You may call this explicitly to trigger a relayout. </p>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a id="a6c8494accd0fd1ef12bb6bf5f24860f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c8494accd0fd1ef12bb6bf5f24860f9">&sect;&nbsp;</a></span>representers</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSArray*) representers</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">atomic</span><span class="mlabel">copy</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a88bae352e0a85af02dfef594b2c75bb9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88bae352e0a85af02dfef594b2c75bb9">&sect;&nbsp;</a></span>maximizesBytesPerLine</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (BOOL) maximizesBytesPerLine</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>When enabled, the receiver will attempt to maximize the bytes per line so as to consume as much as possible of the bounds rect. If this is YES, then upon relayout, the receiver will recalculate the maximum number of bytes per line that can fit in its boundsRectForLayout. If this is NO, then the receiver will not change the bytes per line. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="_h_f_layout_representer_8h_source.html">HFLayoutRepresenter.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.12
</small></address>
</body>
</html>
